﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using AG.Utilities;

namespace SharePointOptimizer.BL.DataAnalysis.IssueTypes
{
    public class IssueTypesFactory
    {
        public static List<IssueTypeCheckBase> GetAllChecks()
        {
            List<IssueTypeCheckBase> checks = new List<IssueTypeCheckBase>();

            //Add if constructions to dynamically add or remove checks for example with checkboxes in the GUI
            try
            {

                checks.Add(new FarmTooManyWebAppsCheck(1002));
                checks.Add(new SiteTooManyLibrariesCheck(4001));
                checks.Add(new ListTooManyFilesCheck(5001));
                checks.Add(new WebAppTooManySiteColsCheck(2001));
                checks.Add(new SiteColTooManySitesCheck(3002));
                checks.Add(new ServerCheckFreeSpaceLess10percent(7001));
                checks.Add(new ServerCheckRAM(7002));
                checks.Add(new FarmBackupCheck(1001));
                checks.Add(new SiteTooNestedCheck(4002));
                checks.Add(new DatabaseSizeCheck(6001));
               // checks.Add(new ObjectCachingEnabledCheck(6003));
                checks.Add(new BlobCachingEnabledCheck(2002));
                checks.Add(new DebugEnabledCheck(2003));
            }

            catch (Exception ex)
            {
                Logger.Error(ex);
            }
            return checks;
        }
    }

}
